浏览量 4507
2017/01/24 20:15
swap介绍
物理内存是计算机的实际内存大小,由RAM芯片组成。虚拟内存则是虚拟出来的、使用磁盘代替内存。虚拟内存的出现,让机器内存不够的情况得到部分解决。当程序运行起来由操作系统做具体虚拟内存到物理内存的替换和加载(相应的页与段的虚拟内存管理)。这里的虚拟内存即所谓的swap。
当用户提交程序,然后产生进程在机器上运行。机器会判断当前物理内存是否还有空闲允许进程调入内存运行,如果有则直接调入内存进行;如果没有,则会根据优先级选择一个进程挂起,把该进程交换到swap中等待,然后把新的进程调入到内存中运行。根据这种换入和换出,实现了内存的循环利用,让用户感觉不到内存的限制。从这也可以看出swap扮演了一个非常重要的角色,就是暂存被换出的进程。
这次遇到的情况如下,通过free命令查询显示为负数,free -h直接就core了。
经查是由于/swapfile1文件被删除导致的,重启解决。。
具体操作中用到一些命令:
swapon -s #查看当前swap的使用情况
dd if=/dev/zero of=/swapfile1 bs=1024 count=2048000 # 创建swap文件
cat /proc/swaps #查看当前swap的使用情况,proc是内存内的信息不可修改
swapoff /swapfile1 #关闭swap
# mkswap /data1/swapfile1 #
# swapon /data1/swapfile1 # 启用挂载swap
[wangzi@host ~]$ free
total used free shared buff/cache available
Mem: 31457280 10432364 13269976 0 7754940 13754978
Swap: 0 -18014398508861628 18014398508861628
[wangzi@host ~]$ free -h
total used free shared buff/cache available
Mem: 30G 9.9G 12G 0B 7.4G 13G
Segmentation fault (core dumped)
上一篇 搜索 下一篇